/**
 * DragNode.h
 * Coyright (c) 2009 Xiaofeng Gu. All Rights Reserved.
 * Author : Xiaofeng Gu
 *
 * Creation Data : 2009/09/07
 */
#pragma once

#include "SKPipeline.h"


class ISelect;
class CDragNodeProcessCard
{
public:
	CDragNodeProcessCard():m_pSelectObject(NULL) {}
	virtual~ CDragNodeProcessCard() {}

	void							Reset() { m_pSelectObject = NULL; }

	void							SetStartDragPt(int x, int y) { m_iStartDragX = x; m_iStartDragY = y; }
	void							GetStartDragPt(int& x, int& y) { x = m_iStartDragX; y = m_iStartDragY; }

	void							SetStopDragPt(int x, int y) { m_iStopDragX = x; m_iStopDragY = y; }
	void							GetStopDragPt(int& x, int& y) { x = m_iStopDragX; y = m_iStopDragY; }

	ISelect*						GetSelectObj() { return m_pSelectObject; }
	void							SetSelectObj(ISelect* pObj) { m_pSelectObject = pObj; }

	void							SetEyePt(CVec& Pt) { m_EyePt = Pt; }
	CVec&							GetEyePt() { return m_EyePt; }

private:
	int								m_iStartDragX;
	int								m_iStartDragY;
	int								m_iStopDragX;
	int								m_iStopDragY;
	ISelect*						m_pSelectObject;
	CVec							m_EyePt;
};


class CDragNode : public CSKDistributor
{
public:
	DECALRE_INTERFACE_PART(OnExecute);

	CDragNode(ISKPipeline* pNextProcess, CProcessDraft* pData)
		: CSKDistributor(pNextProcess, pData)
	{}

	virtual ~CDragNode() {}
};